# -*- coding: utf-8 -*-
"""
Created on Mon Aug 14 10:22:46 2023

@author: skunk69
"""

import json

chinese_name = u'父亲在位问卷中文简式版'
english_name = 'Brief Version of Chinese Revision of Father Presence Questionnaire'
abbreviation = 'FPQ-CR-B'
category = u'家庭与人际关系量表'

outline = u"""受第二次世界大战影响，早期有关父子关系的实证研究多定位于父亲缺失/父爱缺失（Father’s Absence）。父亲缺失/父爱缺失指由于父母长期分居、中途离异、意外身亡等不同原因而致使子女缺少父亲的教育及缺少父亲关爱的现象(Taims, 2004)。这些研究中所提及的父亲在位(father presence)仅指和孩子居住在一起的父亲，亦或仅代表父亲缺位的反义词。在过去的30年里，父子关系的研究学者已经开始将研究视角逐渐集中到父亲参与（Father Involvement）的方向上(Krampe, 2006)。直到21世纪，父亲在位才开始在父子关系的研究上崭露头角，从成年子女的角度出发，研究父子关系对子女成长的影响，丰富了父子关系的研究主题。
父亲在位的概念是个新兴概念，由Krampe (2009) 提出。Krampe综合前人对家庭系统中的父子关系所进行的一系列研究的成果，从心理分析、历史学、人类学和社会学、宗教的领域中进行提取和整合，从孩子的视角界定了父亲在位的含义。他提出，父亲在位是在心理的层面上对子女来说的父亲“在”或者“不在”的状态，以及“在”的程度状况，还可以理解为，从子女的方面感知到的父亲是否可以亲近、亲近的程度，以及感知到的父亲是否容易接近、可接近的程度。
Krampe (2009) 提出父亲在位定义的同时，还提出了父亲在位理论，这个理论包含了一个模型，模型是从动力学的角度建立的，分为从里到外的四个层次。最里层，即核心部分是孩子内心的父亲，从里向外的第二个层次是孩子和父亲的关系，第三个层次是他人对父子关系的影响，第四层，也即最外层，是孩子对父亲的信念。 孩子内心的父亲。英文表达为The Inner Father。这是孩子对父亲的心理建构。Bowlby的依恋理论中提出了孩子先天就有寻找母亲的倾向，Krampe (2003) 则提出了孩子先天有寻找和母亲分离的他人的倾向，而父亲往往是孩子接触到的在母亲之后的第二个人，因而寻找父亲也是一种先天的倾向。这是父亲在位理论的基础之一。
父亲在位研究是父子关系研究中一个新的领域。其中由Krampe等人提出的父亲在位理论动力学模型最为著名。Krampe等人将父亲在位定义为子女的心理父亲在位，即父亲对子女的心理亲近和可触及。心理父亲在位也表示父亲总在他人之前，总是触手可及，总是在场以及总是存在。Krampe和Newton于2006年编制了父亲在位问卷（Father Presence Questionnaire，FPQ），用于测量成年子女（18岁及以上）对其父亲的感知和体验。该问卷的中文修订版（FPQ-R）共96个条目，包含3个高阶维度，分为8个分量表。由于FPQ-R条目太多，一些条目可能存在意义重叠。因此，从实用性出发，蒲少华在中文修订版基础上挑选适当条目组成简式版，并考察其在大学生中的信效度。"""

instruction = u"""这是一份关于父子(女)两代人之间家庭生活关系的问卷。如果你不能完全确定，请不要留空，选最接近你实际感受的答案。"""

hints = {}
hints[1] = u"""第1~4题是你与亲生父亲感情的描述，请认真阅读每个句子，判断句中的描述符合你与亲生父亲感情的程度，并在“从不”、“很少”、“有时候”、“经常”、“总是”中选择最合适你的一项。"""
hints[5] = u"""第5~15题列出了从你有记忆开始到你18岁期间你对亲生父母亲的体验。请认真阅读每个句子，判断句子的描述符合你对亲生父母亲体验的程度，并在“从不”、“很少”、“有时候”、“经常”、“总是”中选择最合适你的一项。"""
hints[16] = u"""基于从你的早期记忆到你18岁期间的印象，请认真阅读16~27题，判断句中的描述符合你对父母亲之间关系，以及他们与各自父亲之间关系的印象的程度，并在“从不”、“很少”、“有时候”、“经常”、“总是”中选择最合适你的一项。"""
hints[28] = u"""第28~31题是关于你自己的体验和信念的量表，反映了你现在的态度，请认真阅读每个句子，判断句中的描述符合你自己体验和信念的程度，并在“很不赞同”、“不赞同”、“不确定”、“赞同”、“很赞同”中选择最合适你的一项。"""

with open('FPQ-CR-B.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()
items = {}
for line in lines:
    key,value = line.strip().split()
    items[key] = value

reverse_items = [20,22,23]
scales = [u'对父亲的感情',u'母亲对父子关系的支持',u'父亲参与的感知',
          u'与父亲的身体互动',u'父母关系',
          u'母亲和外祖父的关系',u'父亲与祖父的关系',
          u'父亲影响的概念']
scales_items = [
    list(range(1,5)),# 与父亲的关系
    list(range(5,8)),# 母亲对父子关系的支持
    list(range(8,12)),# 父亲参与的感知
    list(range(12,16)),# 与父亲的身体互动
    list(range(16,20)),# 父母关系
    list(range(20,24)),# 母亲和外祖父的关系
    list(range(24,28)),# 父亲与祖父的关系
    list(range(28,32)),# 有关父亲的信念
    ]
factors = [u'与父亲的关系',u'家庭代际关系',u'有关父亲的信念']
factors_scales = [scales[0:5],scales[5:7],scales[-1]]
rating = [
    [u'从不',u'很少',u'有时候',u'经常',u'总是'],
    [u'很不赞同',u'不赞同',u'不确定',u'赞同',u'很赞同'],
    ]
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'hints':hints,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《父亲在位问卷中文简式版》属于一个自评量表。"""

reliability = u"""采用方便取样的方法，抽取某综合性大学生作为参试样本。内部一致性信度：FPQ-CR-B的3个高阶维度的Cronbach alpha系数分别为0.91、0.84、0.87，8个分量表的Cronbach alpha系数为0.73～0.89。重测信度：FPQ-CR-B间隔4周的重测信度系数为0.53～0.79，其中3个高阶维度的重测信度系数分别是0.79、0.66、0.53，8个分量表的重测信度系数为0.53～0.76。"""
validity = u"""对FPQ-CR的8因子模型和高阶3因子模型进行验证性因素分析以评估结构效度。分析8个分量表内部因子间的相关系数以评估区分与聚合效度。从总样本抽取部分样本同时测试父母教养方式量表父亲版，通过相关分析检验效标关联效度。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""问卷的主要统计指标是总分、高阶维度分、分量表分和每个条目分。首先将反向题目反向计分，然后将各维度题目相加得到各维度分和高阶维度分，最后将三个高阶维度分相加得到总分。得分高反映了被测者感知或体验到了高品质的父亲在位。"""

applications = u"""问卷修订之后，课题组进行了父亲在位对大学生人格、成就动机、性别角色、心理弹性等影响的研究，得到如下结论：
1）父亲在位各因子与大学生的严谨性、开放性、宜人性、外向性人格维度之间是正相关，而与神经质之间呈负相关。
2）父亲在位各分量表与大学生追求成功的动机呈显著正相关。
3）大学生父亲在位与心理弹性之间存在显著相关性。
4）高品质的父亲在位也有利于大学生性别角色的形成和良好发展。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)